/***************************************************
 @Name :        小铭同学
 @Time :        2022-10-30
 @Email :       LiaoMingWJ233@163.com
 @Comment :     灰度传感器功能的外部接口
 @FileName :    gray.h
 @Version :     1.0
****************************************************/


#ifndef _GRAY_H
#define _GRAY_H

#include "system.h"

#define GRAY_F_L   HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)    //读取前侧左部灰度传感器状态
#define GRAY_F_M   HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_3)    //读取前侧中部灰度传感器状态
#define GRAY_F_R   HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2)    //读取前侧右部灰度传感器状态
#define GRAY_B_L   HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_15)   //读取后侧左部灰度传感器状态
#define GRAY_B_M   HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_0)    //读取后侧中部灰度传感器状态
#define GRAY_B_R   HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1)    //读取后侧右部灰度传感器状态
#define GRAY_L_F   HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_3)    //读取左侧前部灰度传感器状态
#define GRAY_L_M   HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)   //读取左侧中部灰度传感器状态
#define GRAY_L_B   HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_14)   //读取左侧后部灰度传感器状态
#define GRAY_R_F   HAL_GPIO_ReadPin(GPIOD,GPIO_PIN_2)    //读取右侧前部灰度传感器状态
#define GRAY_R_M   HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5)    //读取右侧中部灰度传感器状态
#define GRAY_R_B   HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_4)    //读取右侧后部灰度传感器状态


signed char gray_front_error(void);

signed char gray_front_error1(void);

signed char gray_back_error(void);

bool gray_is_left(void);

bool gray_is_right(void);

bool gray_is_cross(void);

bool gray_is_cross1(void);

bool gray_is_cross2(void);

bool gray_is_t(void);

bool gray_turn_not_ok0(void);

bool gray_turn_ok1(void);

void gray_test(void);

#endif
